//#pragma once
//#include<iostream>
//#include<stack>
/////这是queue 的简单实现 实际无论stack 还是 queue都是 deque
//template<class T>
//class Queue {
//public:
//    Queue() {
//
//    }
//
//    void push(const T& x) {
//        in_stack_.push(x);
//    }
//
//    T& pop() {
//        if (out_stack_.empty())
//        {
//            in_to_out();
//        }
//        T val = out_stack_.top();
//        out_stack_.pop();
//        return val;
//    }
//
//    T& front() {
//        if (out_stack_.empty())
//        {
//            in_to_out();
//        }
//        return out_stack_.top();
//    }
//    size_t size()const
//    {
//        return in_stack_.size() + out_stack_.size();
//    }
//    bool empty() {
//        return in_stack_.empty() && out_stack_.empty();
//    }
//private:
//    void in_to_out()
//    {
//        while (!in_stack_.empty())
//        {
//            out_stack_.push(in_stack_.top());
//            in_stack_.pop();
//        }
//    }
//    std::stack<T>in_stack_;
//    std::stack<T>out_stack_;
//};
//int main()
//{
//    Queue<int>q;
//    q.push(1);
//    q.push(2);
//    q.push(3);
//    q.push(4);
//    q.push(5);
//    q.push(6);
//    q.push(7);
//    std::cout << "size: " << q.size() << std::endl;
//    while (!q.empty())
//    {
//        std::cout << q.front() << std::endl;
//        q.pop();
//    }
//    return 0;
//}